#pragma once
#ifndef _GENERATETOKEN_H_
#define _GENERATETOKEN_H_
#include <string>
#include <map>
#include <sstream>
#include <iomanip>
#include <ctime>
#include <openssl/md5.h>
#include <nlohmann/json.hpp>
#include <curl/curl.h>

using std::string;
using std::map;

namespace SOS{

class CryptString
{
public:
    CryptString(const string &data);
    ~CryptString() {};
    string generateMD5()const;

private:
    string _data;
};


class KVQuery{
public:
    KVQuery();
    void add(const string &key,const string &value);
    void erase(const string &key);
    void clear();
    string toString()const;
    string toCryptString();
private:
    map<string,string> _map;
};


class CurlKits{

public:
    CurlKits();
    ~CurlKits();
    void Perform(const string &prehttp,const string &params,const string &header = "");
private:
private:
    CURL *_curl;

};



} // end of namespace SOS;


#endif

